@fraziym/axoniz 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (512) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +76 -0
  3. package/dist/agents/definition.d.ts +15 -0
  4. package/dist/agents/definition.d.ts.map +1 -0
  5. package/dist/agents/definition.js +41 -0
  6. package/dist/agents/definition.js.map +1 -0
  7. package/dist/agents/index.d.ts +12 -0
  8. package/dist/agents/index.d.ts.map +1 -0
  9. package/dist/agents/index.js +11 -0
  10. package/dist/agents/index.js.map +1 -0
  11. package/dist/agents/registry.d.ts +17 -0
  12. package/dist/agents/registry.d.ts.map +1 -0
  13. package/dist/agents/registry.js +23 -0
  14. package/dist/agents/registry.js.map +1 -0
  15. package/dist/agents/specialized.d.ts +31 -0
  16. package/dist/agents/specialized.d.ts.map +1 -0
  17. package/dist/agents/specialized.js +75 -0
  18. package/dist/agents/specialized.js.map +1 -0
  19. package/dist/awareness/index.d.ts +14 -0
  20. package/dist/awareness/index.d.ts.map +1 -0
  21. package/dist/awareness/index.js +22 -0
  22. package/dist/awareness/index.js.map +1 -0
  23. package/dist/awareness/service.d.ts +180 -0
  24. package/dist/awareness/service.d.ts.map +1 -0
  25. package/dist/awareness/service.js +789 -0
  26. package/dist/awareness/service.js.map +1 -0
  27. package/dist/cli/entry.d.ts +13 -0
  28. package/dist/cli/entry.d.ts.map +1 -0
  29. package/dist/cli/entry.js +35 -0
  30. package/dist/cli/entry.js.map +1 -0
  31. package/dist/comms/telegram.d.ts +41 -0
  32. package/dist/comms/telegram.d.ts.map +1 -0
  33. package/dist/comms/telegram.js +332 -0
  34. package/dist/comms/telegram.js.map +1 -0
  35. package/dist/core/agent.d.ts +252 -0
  36. package/dist/core/agent.d.ts.map +1 -0
  37. package/dist/core/agent.js +1399 -0
  38. package/dist/core/agent.js.map +1 -0
  39. package/dist/core/auth.d.ts +23 -0
  40. package/dist/core/auth.d.ts.map +1 -0
  41. package/dist/core/auth.js +113 -0
  42. package/dist/core/auth.js.map +1 -0
  43. package/dist/core/authority.d.ts +118 -0
  44. package/dist/core/authority.d.ts.map +1 -0
  45. package/dist/core/authority.js +402 -0
  46. package/dist/core/authority.js.map +1 -0
  47. package/dist/core/backend/async_queue.d.ts +17 -0
  48. package/dist/core/backend/async_queue.d.ts.map +1 -0
  49. package/dist/core/backend/async_queue.js +66 -0
  50. package/dist/core/backend/async_queue.js.map +1 -0
  51. package/dist/core/backend/index.d.ts +24 -0
  52. package/dist/core/backend/index.d.ts.map +1 -0
  53. package/dist/core/backend/index.js +128 -0
  54. package/dist/core/backend/index.js.map +1 -0
  55. package/dist/core/backend/llama_server.d.ts +39 -0
  56. package/dist/core/backend/llama_server.d.ts.map +1 -0
  57. package/dist/core/backend/llama_server.js +182 -0
  58. package/dist/core/backend/llama_server.js.map +1 -0
  59. package/dist/core/backend/llamacpp.d.ts +40 -0
  60. package/dist/core/backend/llamacpp.d.ts.map +1 -0
  61. package/dist/core/backend/llamacpp.js +200 -0
  62. package/dist/core/backend/llamacpp.js.map +1 -0
  63. package/dist/core/backend/lmstudio.d.ts +53 -0
  64. package/dist/core/backend/lmstudio.d.ts.map +1 -0
  65. package/dist/core/backend/lmstudio.js +274 -0
  66. package/dist/core/backend/lmstudio.js.map +1 -0
  67. package/dist/core/backend/ollama.d.ts +25 -0
  68. package/dist/core/backend/ollama.d.ts.map +1 -0
  69. package/dist/core/backend/ollama.js +86 -0
  70. package/dist/core/backend/ollama.js.map +1 -0
  71. package/dist/core/backend/openai.d.ts +27 -0
  72. package/dist/core/backend/openai.d.ts.map +1 -0
  73. package/dist/core/backend/openai.js +84 -0
  74. package/dist/core/backend/openai.js.map +1 -0
  75. package/dist/core/backend/types.d.ts +73 -0
  76. package/dist/core/backend/types.d.ts.map +1 -0
  77. package/dist/core/backend/types.js +137 -0
  78. package/dist/core/backend/types.js.map +1 -0
  79. package/dist/core/chat_store.d.ts +77 -0
  80. package/dist/core/chat_store.d.ts.map +1 -0
  81. package/dist/core/chat_store.js +332 -0
  82. package/dist/core/chat_store.js.map +1 -0
  83. package/dist/core/cli.d.ts +82 -0
  84. package/dist/core/cli.d.ts.map +1 -0
  85. package/dist/core/cli.js +602 -0
  86. package/dist/core/cli.js.map +1 -0
  87. package/dist/core/config.d.ts +127 -0
  88. package/dist/core/config.d.ts.map +1 -0
  89. package/dist/core/config.js +295 -0
  90. package/dist/core/config.js.map +1 -0
  91. package/dist/core/debug.d.ts +8 -0
  92. package/dist/core/debug.d.ts.map +1 -0
  93. package/dist/core/debug.js +8 -0
  94. package/dist/core/debug.js.map +1 -0
  95. package/dist/core/downloader.d.ts +31 -0
  96. package/dist/core/downloader.d.ts.map +1 -0
  97. package/dist/core/downloader.js +180 -0
  98. package/dist/core/downloader.js.map +1 -0
  99. package/dist/core/errors.d.ts +80 -0
  100. package/dist/core/errors.d.ts.map +1 -0
  101. package/dist/core/errors.js +134 -0
  102. package/dist/core/errors.js.map +1 -0
  103. package/dist/core/extras.d.ts +160 -0
  104. package/dist/core/extras.d.ts.map +1 -0
  105. package/dist/core/extras.js +553 -0
  106. package/dist/core/extras.js.map +1 -0
  107. package/dist/core/health.d.ts +27 -0
  108. package/dist/core/health.d.ts.map +1 -0
  109. package/dist/core/health.js +96 -0
  110. package/dist/core/health.js.map +1 -0
  111. package/dist/core/history.d.ts +50 -0
  112. package/dist/core/history.d.ts.map +1 -0
  113. package/dist/core/history.js +276 -0
  114. package/dist/core/history.js.map +1 -0
  115. package/dist/core/index.d.ts +6 -0
  116. package/dist/core/index.d.ts.map +1 -0
  117. package/dist/core/index.js +6 -0
  118. package/dist/core/index.js.map +1 -0
  119. package/dist/core/intelligence/ast_index.d.ts +255 -0
  120. package/dist/core/intelligence/ast_index.d.ts.map +1 -0
  121. package/dist/core/intelligence/ast_index.js +1369 -0
  122. package/dist/core/intelligence/ast_index.js.map +1 -0
  123. package/dist/core/intelligence/confidence.d.ts +113 -0
  124. package/dist/core/intelligence/confidence.d.ts.map +1 -0
  125. package/dist/core/intelligence/confidence.js +298 -0
  126. package/dist/core/intelligence/confidence.js.map +1 -0
  127. package/dist/core/intelligence/context_compressor.d.ts +80 -0
  128. package/dist/core/intelligence/context_compressor.d.ts.map +1 -0
  129. package/dist/core/intelligence/context_compressor.js +245 -0
  130. package/dist/core/intelligence/context_compressor.js.map +1 -0
  131. package/dist/core/intelligence/daemon.d.ts +247 -0
  132. package/dist/core/intelligence/daemon.d.ts.map +1 -0
  133. package/dist/core/intelligence/daemon.js +842 -0
  134. package/dist/core/intelligence/daemon.js.map +1 -0
  135. package/dist/core/intelligence/index.d.ts +60 -0
  136. package/dist/core/intelligence/index.d.ts.map +1 -0
  137. package/dist/core/intelligence/index.js +101 -0
  138. package/dist/core/intelligence/index.js.map +1 -0
  139. package/dist/core/intelligence/predictor.d.ts +246 -0
  140. package/dist/core/intelligence/predictor.d.ts.map +1 -0
  141. package/dist/core/intelligence/predictor.js +590 -0
  142. package/dist/core/intelligence/predictor.js.map +1 -0
  143. package/dist/core/intelligence/reflex.d.ts +84 -0
  144. package/dist/core/intelligence/reflex.d.ts.map +1 -0
  145. package/dist/core/intelligence/reflex.js +344 -0
  146. package/dist/core/intelligence/reflex.js.map +1 -0
  147. package/dist/core/intelligence/self_correction.d.ts +121 -0
  148. package/dist/core/intelligence/self_correction.d.ts.map +1 -0
  149. package/dist/core/intelligence/self_correction.js +327 -0
  150. package/dist/core/intelligence/self_correction.js.map +1 -0
  151. package/dist/core/intelligence/skill_distiller.d.ts +100 -0
  152. package/dist/core/intelligence/skill_distiller.d.ts.map +1 -0
  153. package/dist/core/intelligence/skill_distiller.js +246 -0
  154. package/dist/core/intelligence/skill_distiller.js.map +1 -0
  155. package/dist/core/intelligence/swarm.d.ts +330 -0
  156. package/dist/core/intelligence/swarm.d.ts.map +1 -0
  157. package/dist/core/intelligence/swarm.js +1064 -0
  158. package/dist/core/intelligence/swarm.js.map +1 -0
  159. package/dist/core/intelligence/trajectory.d.ts +107 -0
  160. package/dist/core/intelligence/trajectory.d.ts.map +1 -0
  161. package/dist/core/intelligence/trajectory.js +330 -0
  162. package/dist/core/intelligence/trajectory.js.map +1 -0
  163. package/dist/core/logger.d.ts +111 -0
  164. package/dist/core/logger.d.ts.map +1 -0
  165. package/dist/core/logger.js +640 -0
  166. package/dist/core/logger.js.map +1 -0
  167. package/dist/core/loop.d.ts +123 -0
  168. package/dist/core/loop.d.ts.map +1 -0
  169. package/dist/core/loop.js +423 -0
  170. package/dist/core/loop.js.map +1 -0
  171. package/dist/core/memory.d.ts +81 -0
  172. package/dist/core/memory.d.ts.map +1 -0
  173. package/dist/core/memory.js +328 -0
  174. package/dist/core/memory.js.map +1 -0
  175. package/dist/core/metrics.d.ts +29 -0
  176. package/dist/core/metrics.d.ts.map +1 -0
  177. package/dist/core/metrics.js +109 -0
  178. package/dist/core/metrics.js.map +1 -0
  179. package/dist/core/models.d.ts +51 -0
  180. package/dist/core/models.d.ts.map +1 -0
  181. package/dist/core/models.js +146 -0
  182. package/dist/core/models.js.map +1 -0
  183. package/dist/core/optimizer.d.ts +34 -0
  184. package/dist/core/optimizer.d.ts.map +1 -0
  185. package/dist/core/optimizer.js +131 -0
  186. package/dist/core/optimizer.js.map +1 -0
  187. package/dist/core/persona.d.ts +35 -0
  188. package/dist/core/persona.d.ts.map +1 -0
  189. package/dist/core/persona.js +126 -0
  190. package/dist/core/persona.js.map +1 -0
  191. package/dist/core/rate_limit.d.ts +23 -0
  192. package/dist/core/rate_limit.d.ts.map +1 -0
  193. package/dist/core/rate_limit.js +62 -0
  194. package/dist/core/rate_limit.js.map +1 -0
  195. package/dist/core/runner.d.ts +63 -0
  196. package/dist/core/runner.d.ts.map +1 -0
  197. package/dist/core/runner.js +671 -0
  198. package/dist/core/runner.js.map +1 -0
  199. package/dist/core/stream_parser.d.ts +43 -0
  200. package/dist/core/stream_parser.d.ts.map +1 -0
  201. package/dist/core/stream_parser.js +140 -0
  202. package/dist/core/stream_parser.js.map +1 -0
  203. package/dist/core/tool_schemas.d.ts +26 -0
  204. package/dist/core/tool_schemas.d.ts.map +1 -0
  205. package/dist/core/tool_schemas.js +124 -0
  206. package/dist/core/tool_schemas.js.map +1 -0
  207. package/dist/core/which.d.ts +2 -0
  208. package/dist/core/which.d.ts.map +1 -0
  209. package/dist/core/which.js +35 -0
  210. package/dist/core/which.js.map +1 -0
  211. package/dist/goals/index.d.ts +9 -0
  212. package/dist/goals/index.d.ts.map +1 -0
  213. package/dist/goals/index.js +17 -0
  214. package/dist/goals/index.js.map +1 -0
  215. package/dist/goals/service.d.ts +115 -0
  216. package/dist/goals/service.d.ts.map +1 -0
  217. package/dist/goals/service.js +415 -0
  218. package/dist/goals/service.js.map +1 -0
  219. package/dist/goals/types.d.ts +47 -0
  220. package/dist/goals/types.d.ts.map +1 -0
  221. package/dist/goals/types.js +66 -0
  222. package/dist/goals/types.js.map +1 -0
  223. package/dist/index.d.ts +22 -0
  224. package/dist/index.d.ts.map +1 -0
  225. package/dist/index.js +22 -0
  226. package/dist/index.js.map +1 -0
  227. package/dist/integrations/autonomous_startup.d.ts +51 -0
  228. package/dist/integrations/autonomous_startup.d.ts.map +1 -0
  229. package/dist/integrations/autonomous_startup.js +419 -0
  230. package/dist/integrations/autonomous_startup.js.map +1 -0
  231. package/dist/integrations/goose.d.ts +105 -0
  232. package/dist/integrations/goose.d.ts.map +1 -0
  233. package/dist/integrations/goose.js +408 -0
  234. package/dist/integrations/goose.js.map +1 -0
  235. package/dist/integrations/index.d.ts +21 -0
  236. package/dist/integrations/index.d.ts.map +1 -0
  237. package/dist/integrations/index.js +17 -0
  238. package/dist/integrations/index.js.map +1 -0
  239. package/dist/integrations/mcp.d.ts +73 -0
  240. package/dist/integrations/mcp.d.ts.map +1 -0
  241. package/dist/integrations/mcp.js +307 -0
  242. package/dist/integrations/mcp.js.map +1 -0
  243. package/dist/integrations/mempalace.d.ts +18 -0
  244. package/dist/integrations/mempalace.d.ts.map +1 -0
  245. package/dist/integrations/mempalace.js +25 -0
  246. package/dist/integrations/mempalace.js.map +1 -0
  247. package/dist/integrations/multi_agent.d.ts +82 -0
  248. package/dist/integrations/multi_agent.d.ts.map +1 -0
  249. package/dist/integrations/multi_agent.js +280 -0
  250. package/dist/integrations/multi_agent.js.map +1 -0
  251. package/dist/integrations/unified_memory.d.ts +415 -0
  252. package/dist/integrations/unified_memory.d.ts.map +1 -0
  253. package/dist/integrations/unified_memory.js +1489 -0
  254. package/dist/integrations/unified_memory.js.map +1 -0
  255. package/dist/roles/beru.yaml +48 -0
  256. package/dist/sidecar/client.d.ts +63 -0
  257. package/dist/sidecar/client.d.ts.map +1 -0
  258. package/dist/sidecar/client.js +222 -0
  259. package/dist/sidecar/client.js.map +1 -0
  260. package/dist/sidecar/index.d.ts +7 -0
  261. package/dist/sidecar/index.d.ts.map +1 -0
  262. package/dist/sidecar/index.js +6 -0
  263. package/dist/sidecar/index.js.map +1 -0
  264. package/dist/startup.d.ts +22 -0
  265. package/dist/startup.d.ts.map +1 -0
  266. package/dist/startup.js +194 -0
  267. package/dist/startup.js.map +1 -0
  268. package/dist/tools/_internal.d.ts +90 -0
  269. package/dist/tools/_internal.d.ts.map +1 -0
  270. package/dist/tools/_internal.js +375 -0
  271. package/dist/tools/_internal.js.map +1 -0
  272. package/dist/tools/_smoke.d.ts +2 -0
  273. package/dist/tools/_smoke.d.ts.map +1 -0
  274. package/dist/tools/_smoke.js +203 -0
  275. package/dist/tools/_smoke.js.map +1 -0
  276. package/dist/tools/axodex_tools.d.ts +51 -0
  277. package/dist/tools/axodex_tools.d.ts.map +1 -0
  278. package/dist/tools/axodex_tools.js +181 -0
  279. package/dist/tools/axodex_tools.js.map +1 -0
  280. package/dist/tools/code_tools.d.ts +33 -0
  281. package/dist/tools/code_tools.d.ts.map +1 -0
  282. package/dist/tools/code_tools.js +191 -0
  283. package/dist/tools/code_tools.js.map +1 -0
  284. package/dist/tools/computer_tools.d.ts +59 -0
  285. package/dist/tools/computer_tools.d.ts.map +1 -0
  286. package/dist/tools/computer_tools.js +348 -0
  287. package/dist/tools/computer_tools.js.map +1 -0
  288. package/dist/tools/file_tools.d.ts +51 -0
  289. package/dist/tools/file_tools.d.ts.map +1 -0
  290. package/dist/tools/file_tools.js +424 -0
  291. package/dist/tools/file_tools.js.map +1 -0
  292. package/dist/tools/index.d.ts +13 -0
  293. package/dist/tools/index.d.ts.map +1 -0
  294. package/dist/tools/index.js +13 -0
  295. package/dist/tools/index.js.map +1 -0
  296. package/dist/tools/shell_tools.d.ts +39 -0
  297. package/dist/tools/shell_tools.d.ts.map +1 -0
  298. package/dist/tools/shell_tools.js +163 -0
  299. package/dist/tools/shell_tools.js.map +1 -0
  300. package/dist/tools/web_tools.d.ts +31 -0
  301. package/dist/tools/web_tools.d.ts.map +1 -0
  302. package/dist/tools/web_tools.js +117 -0
  303. package/dist/tools/web_tools.js.map +1 -0
  304. package/dist/voice/index.d.ts +41 -0
  305. package/dist/voice/index.d.ts.map +1 -0
  306. package/dist/voice/index.js +58 -0
  307. package/dist/voice/index.js.map +1 -0
  308. package/dist/voice/light_daemon.d.ts +197 -0
  309. package/dist/voice/light_daemon.d.ts.map +1 -0
  310. package/dist/voice/light_daemon.js +746 -0
  311. package/dist/voice/light_daemon.js.map +1 -0
  312. package/dist/voice/setup.d.ts +63 -0
  313. package/dist/voice/setup.d.ts.map +1 -0
  314. package/dist/voice/setup.js +443 -0
  315. package/dist/voice/setup.js.map +1 -0
  316. package/dist/voice/stt.d.ts +148 -0
  317. package/dist/voice/stt.d.ts.map +1 -0
  318. package/dist/voice/stt.js +361 -0
  319. package/dist/voice/stt.js.map +1 -0
  320. package/dist/voice/tts.d.ts +168 -0
  321. package/dist/voice/tts.d.ts.map +1 -0
  322. package/dist/voice/tts.js +698 -0
  323. package/dist/voice/tts.js.map +1 -0
  324. package/dist/voice/voice_loop.d.ts +101 -0
  325. package/dist/voice/voice_loop.d.ts.map +1 -0
  326. package/dist/voice/voice_loop.js +463 -0
  327. package/dist/voice/voice_loop.js.map +1 -0
  328. package/dist/voice/wake_word.d.ts +153 -0
  329. package/dist/voice/wake_word.d.ts.map +1 -0
  330. package/dist/voice/wake_word.js +458 -0
  331. package/dist/voice/wake_word.js.map +1 -0
  332. package/dist/voice/wav.d.ts +99 -0
  333. package/dist/voice/wav.d.ts.map +1 -0
  334. package/dist/voice/wav.js +306 -0
  335. package/dist/voice/wav.js.map +1 -0
  336. package/dist/web/broker.d.ts +33 -0
  337. package/dist/web/broker.d.ts.map +1 -0
  338. package/dist/web/broker.js +58 -0
  339. package/dist/web/broker.js.map +1 -0
  340. package/dist/web/open_browser.d.ts +2 -0
  341. package/dist/web/open_browser.d.ts.map +1 -0
  342. package/dist/web/open_browser.js +42 -0
  343. package/dist/web/open_browser.js.map +1 -0
  344. package/dist/web/server.d.ts +54 -0
  345. package/dist/web/server.d.ts.map +1 -0
  346. package/dist/web/server.js +831 -0
  347. package/dist/web/server.js.map +1 -0
  348. package/dist/web/static/app.js +4121 -0
  349. package/dist/web/static/index.html +2281 -0
  350. package/dist/web/static/js/MODULE_SUMMARY.md +124 -0
  351. package/dist/web/static/js/a11y.js +165 -0
  352. package/dist/web/static/js/admin.js +2145 -0
  353. package/dist/web/static/js/assistant.js +475 -0
  354. package/dist/web/static/js/calendar/reminders.js +114 -0
  355. package/dist/web/static/js/calendar/utils.js +166 -0
  356. package/dist/web/static/js/calendar.js +3348 -0
  357. package/dist/web/static/js/censor.js +356 -0
  358. package/dist/web/static/js/chat.js +4546 -0
  359. package/dist/web/static/js/chatRenderer.js +2294 -0
  360. package/dist/web/static/js/chatStream.js +276 -0
  361. package/dist/web/static/js/codeRunner.js +398 -0
  362. package/dist/web/static/js/color/hex.js +14 -0
  363. package/dist/web/static/js/colorPicker.js +453 -0
  364. package/dist/web/static/js/compare/icons.js +77 -0
  365. package/dist/web/static/js/compare/index.js +1482 -0
  366. package/dist/web/static/js/compare/models.js +104 -0
  367. package/dist/web/static/js/compare/panes.js +817 -0
  368. package/dist/web/static/js/compare/probe.js +78 -0
  369. package/dist/web/static/js/compare/scoreboard.js +223 -0
  370. package/dist/web/static/js/compare/selector.js +1335 -0
  371. package/dist/web/static/js/compare/state.js +58 -0
  372. package/dist/web/static/js/compare/stream.js +695 -0
  373. package/dist/web/static/js/compare/vote.js +254 -0
  374. package/dist/web/static/js/cookbook-diagnosis.js +694 -0
  375. package/dist/web/static/js/cookbook-hwfit.js +1888 -0
  376. package/dist/web/static/js/cookbook.js +2093 -0
  377. package/dist/web/static/js/cookbookDownload.js +633 -0
  378. package/dist/web/static/js/cookbookProgressSignal.js +29 -0
  379. package/dist/web/static/js/cookbookRunning.js +3506 -0
  380. package/dist/web/static/js/cookbookServe.js +2128 -0
  381. package/dist/web/static/js/document.js +9731 -0
  382. package/dist/web/static/js/documentLibrary.js +3376 -0
  383. package/dist/web/static/js/dragSort.js +265 -0
  384. package/dist/web/static/js/editor/ai-inpaint.js +374 -0
  385. package/dist/web/static/js/editor/ai-models.js +273 -0
  386. package/dist/web/static/js/editor/ai-rembg.js +230 -0
  387. package/dist/web/static/js/editor/ai-tool-runner.js +147 -0
  388. package/dist/web/static/js/editor/ai-tools-misc.js +216 -0
  389. package/dist/web/static/js/editor/build/controls.js +366 -0
  390. package/dist/web/static/js/editor/build/popups.js +112 -0
  391. package/dist/web/static/js/editor/build/right-panel.js +200 -0
  392. package/dist/web/static/js/editor/build/toolbar.js +73 -0
  393. package/dist/web/static/js/editor/build/topbar.js +131 -0
  394. package/dist/web/static/js/editor/build/transform-popup.js +109 -0
  395. package/dist/web/static/js/editor/canvas-coords.js +21 -0
  396. package/dist/web/static/js/editor/canvas-events.js +197 -0
  397. package/dist/web/static/js/editor/canvas-transforms.js +132 -0
  398. package/dist/web/static/js/editor/checkerboard.js +24 -0
  399. package/dist/web/static/js/editor/clipboard-and-drop.js +133 -0
  400. package/dist/web/static/js/editor/composite-helpers.js +83 -0
  401. package/dist/web/static/js/editor/filters/blur.js +118 -0
  402. package/dist/web/static/js/editor/filters/edge-feather.js +70 -0
  403. package/dist/web/static/js/editor/fx/adj-popup.js +677 -0
  404. package/dist/web/static/js/editor/fx/filter-string.js +38 -0
  405. package/dist/web/static/js/editor/fx/histogram.js +67 -0
  406. package/dist/web/static/js/editor/fx/pixel-pass.js +249 -0
  407. package/dist/web/static/js/editor/harmonize-masks.js +116 -0
  408. package/dist/web/static/js/editor/history-panel.js +176 -0
  409. package/dist/web/static/js/editor/keyboard-shortcuts.js +271 -0
  410. package/dist/web/static/js/editor/layer-helpers.js +131 -0
  411. package/dist/web/static/js/editor/layer-panel.js +600 -0
  412. package/dist/web/static/js/editor/mask-utils.js +91 -0
  413. package/dist/web/static/js/editor/shortcuts-popover.js +149 -0
  414. package/dist/web/static/js/editor/slider-ux.js +191 -0
  415. package/dist/web/static/js/editor/snap.js +107 -0
  416. package/dist/web/static/js/editor/state.js +257 -0
  417. package/dist/web/static/js/editor/stroke-pipeline.js +162 -0
  418. package/dist/web/static/js/editor/stroke-tool-sliders.js +64 -0
  419. package/dist/web/static/js/editor/tools/clone.js +81 -0
  420. package/dist/web/static/js/editor/tools/crop.js +137 -0
  421. package/dist/web/static/js/editor/tools/flood-fill.js +72 -0
  422. package/dist/web/static/js/editor/tools/lasso-mask.js +171 -0
  423. package/dist/web/static/js/editor/tools/lasso.js +65 -0
  424. package/dist/web/static/js/editor/tools/move.js +79 -0
  425. package/dist/web/static/js/editor/tools/stroke.js +123 -0
  426. package/dist/web/static/js/editor/tools/transform-drag.js +174 -0
  427. package/dist/web/static/js/editor/tools/transform-handles.js +271 -0
  428. package/dist/web/static/js/editor/tools/transform-session.js +381 -0
  429. package/dist/web/static/js/editor/tools/wand.js +46 -0
  430. package/dist/web/static/js/editor/wire-import.js +148 -0
  431. package/dist/web/static/js/editor/wire-inpaint-controls.js +164 -0
  432. package/dist/web/static/js/editor/wire-merge-buttons.js +103 -0
  433. package/dist/web/static/js/editor/wire-selection-controls.js +170 -0
  434. package/dist/web/static/js/editor/wire-topbar-menus.js +174 -0
  435. package/dist/web/static/js/editor/wire-topbar-overflow.js +49 -0
  436. package/dist/web/static/js/editor/wire-topbar.js +188 -0
  437. package/dist/web/static/js/emailInbox.js +1245 -0
  438. package/dist/web/static/js/emailLibrary/replyRecipients.js +27 -0
  439. package/dist/web/static/js/emailLibrary/signatureFold.js +339 -0
  440. package/dist/web/static/js/emailLibrary/state.js +34 -0
  441. package/dist/web/static/js/emailLibrary/utils.js +202 -0
  442. package/dist/web/static/js/emailLibrary.js +5217 -0
  443. package/dist/web/static/js/emojiPicker.js +311 -0
  444. package/dist/web/static/js/escMenuStack.js +102 -0
  445. package/dist/web/static/js/fileHandler.js +295 -0
  446. package/dist/web/static/js/gallery.js +2835 -0
  447. package/dist/web/static/js/galleryEditor.js +3798 -0
  448. package/dist/web/static/js/group.js +955 -0
  449. package/dist/web/static/js/init.js +405 -0
  450. package/dist/web/static/js/keyboard-shortcuts.js +292 -0
  451. package/dist/web/static/js/langIcons.js +187 -0
  452. package/dist/web/static/js/markdown/tableRow.js +19 -0
  453. package/dist/web/static/js/markdown.js +806 -0
  454. package/dist/web/static/js/memory.js +1418 -0
  455. package/dist/web/static/js/modalManager.js +1552 -0
  456. package/dist/web/static/js/modalSnap.js +782 -0
  457. package/dist/web/static/js/model/matchKey.js +19 -0
  458. package/dist/web/static/js/modelPicker.js +695 -0
  459. package/dist/web/static/js/modelSort.js +33 -0
  460. package/dist/web/static/js/models.js +642 -0
  461. package/dist/web/static/js/notes.js +5054 -0
  462. package/dist/web/static/js/package.json +1 -0
  463. package/dist/web/static/js/platform.js +47 -0
  464. package/dist/web/static/js/presets.js +1110 -0
  465. package/dist/web/static/js/providers.js +93 -0
  466. package/dist/web/static/js/rag.js +177 -0
  467. package/dist/web/static/js/research/jobs.js +335 -0
  468. package/dist/web/static/js/research/panel.js +1233 -0
  469. package/dist/web/static/js/researchSynapse.js +225 -0
  470. package/dist/web/static/js/search-chat.js +201 -0
  471. package/dist/web/static/js/search.js +52 -0
  472. package/dist/web/static/js/section-management.js +260 -0
  473. package/dist/web/static/js/sessions.js +3108 -0
  474. package/dist/web/static/js/settings.js +4991 -0
  475. package/dist/web/static/js/sidebar-layout.js +573 -0
  476. package/dist/web/static/js/signature.js +504 -0
  477. package/dist/web/static/js/skills.js +1908 -0
  478. package/dist/web/static/js/slashAutocomplete.js +267 -0
  479. package/dist/web/static/js/slashCommands.js +6099 -0
  480. package/dist/web/static/js/spinner.js +406 -0
  481. package/dist/web/static/js/storage.js +123 -0
  482. package/dist/web/static/js/tasks.js +2699 -0
  483. package/dist/web/static/js/theme.js +2086 -0
  484. package/dist/web/static/js/tileManager.js +386 -0
  485. package/dist/web/static/js/tourAutoplay.js +133 -0
  486. package/dist/web/static/js/tourHints.js +179 -0
  487. package/dist/web/static/js/tts-ai.js +521 -0
  488. package/dist/web/static/js/ui.js +1288 -0
  489. package/dist/web/static/js/util/ordinal.js +13 -0
  490. package/dist/web/static/js/voiceRecorder.js +283 -0
  491. package/dist/web/static/js/windowDrag.js +326 -0
  492. package/dist/web/static/js/windowResize.js +233 -0
  493. package/dist/web/static/landing.html +824 -0
  494. package/dist/web/static/lib/docx.umd.min.js +20116 -0
  495. package/dist/web/static/lib/highlight.min.js +1213 -0
  496. package/dist/web/static/lib/html2pdf.bundle.min.js +3 -0
  497. package/dist/web/static/lib/mammoth.browser.min.js +21 -0
  498. package/dist/web/static/lib/qrcode.min.js +8 -0
  499. package/dist/web/static/lib/xlsx.full.min.js +24 -0
  500. package/dist/web/static/login.html +582 -0
  501. package/dist/web/static/manifest.json +15 -0
  502. package/dist/web/static/style.css +35733 -0
  503. package/dist/web/static/sw.js +144 -0
  504. package/dist/workflows/engine.d.ts +162 -0
  505. package/dist/workflows/engine.d.ts.map +1 -0
  506. package/dist/workflows/engine.js +625 -0
  507. package/dist/workflows/engine.js.map +1 -0
  508. package/dist/workflows/index.d.ts +8 -0
  509. package/dist/workflows/index.d.ts.map +1 -0
  510. package/dist/workflows/index.js +14 -0
  511. package/dist/workflows/index.js.map +1 -0
  512. package/package.json +112 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 AKIK FARAJI — Fraziym Tech & AI
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,76 @@
1
+ # AXONIZ-ZERO — BERU (The Ant King)
2
+ ### Sovereign Local Agentic Intelligence
3
+
4
+ AXONIZ-ZERO is the definitive evolution of local agentic intelligence. Embodying the persona of **BERU (The Ant King)**, it is a high-performance, 100% offline system designed to command million-line codebases using small-parameter local models (3B-8B).
5
+
6
+ By moving intelligence into the **Code Graph** and the **System Architecture**, Axoniz-Zero enables a 3B model to outperform cloud-based 70B models in precision, speed, and architectural depth.
7
+
8
+ ## ⚔️ Absolute Super-Powers
9
+
10
+ ### 1. Sovereign Inference Engine
11
+ - **Llama-Native:** Zero overhead. No Ollama, no LM Studio. Pure `llama.cpp` sovereignty.
12
+ - **Prompt Caching:** Instant responses via permanent KV-cache management.
13
+ - **Sovereign Vault:** Centralized GGUF management in `~/.axoniz/models`.
14
+ - **The Forge:** Built-in HuggingFace downloader to acquire new weights directly.
15
+
16
+ ### 2. The Eye of the Marshal (Axodex Graph)
17
+ - **Graph-Native Awareness:** Axoniz-Zero doesn't just read text; it queries a static code graph.
18
+ - **Project Atlas:** Automatic architectural scanning of million-line repos.
19
+ - **Intelligence Slices:** Surgical retrieval of symbols and their graph neighbors, saving thousands of tokens.
20
+
21
+ ### 3. The Shadow Army (Massive Parallelism)
22
+ - **Swarm Command:** Delegate heavy tasks (linting, testing, massive refactors) to a swarm of background worker shadows.
23
+ - **Proactive Sentinel:** A daemon that watches your screen (OCR) and files, delivering "Shadow Solutions" to terminal errors before you even ask.
24
+ - **Shadow-Step:** Speculative execution in safe git branches. Merges only when tests pass 100%.
25
+
26
+ ### 4. The Eternal Palace (Sovereign Memory)
27
+ - **Long-Term Recall:** Persistent semantic memory via MemPalace.
28
+ - **Marshal's Archive:** Every session scan and successful fix is archived forever.
29
+ - **Absolute Query:** A single strike to search both the current Code Graph and your entire project history.
30
+
31
+ ### 5. Tactical Pursuit (Sovereign Goals)
32
+ - **OKR Engine:** Direct the Shadow Army towards high-level objectives with `goal_create`.
33
+ - **Key Result Tracking:** Automatic score calculation for project milestones.
34
+ - **Drill Sergeant Briefings:** BERU provides daily accountability reports on your mission progress.
35
+
36
+ ### 6. Sovereign Infrastructure
37
+ - **Hardened Server:** Built-in JWT Auth, Rate Limiting, and Prometheus Metrics.
38
+ - **Observability:** Monitor agent performance and system health via the `/metrics` endpoint.
39
+ - **Offline Integrity:** 100% local, 100% private, 0% cloud.
40
+
41
+ ## 🚀 Installation & Command
42
+
43
+ ### The Sovereign Bundle
44
+ Run the pre-built executable for the absolute experience:
45
+ ```powershell
46
+ .\dist\axoniz.exe --lc
47
+ ```
48
+
49
+ ### Manual Setup
50
+ 1. **Prepare the Vault:**
51
+ ```powershell
52
+ # Models live here: ~/.axoniz/models
53
+ # llama.cpp lives here: ~/.axoniz/llama
54
+ ```
55
+ 2. **Boot the Marshal:**
56
+ ```powershell
57
+ python -m axoniz.core.runner --web
58
+ ```
59
+
60
+ ## 🏰 Command Center (Web UI)
61
+ Access the **FRAZIYM AI Console** at `http://localhost:7860`:
62
+ - **The Vault:** Manage your local GGUF armory.
63
+ - **The Forge:** Search and download models from HuggingFace.
64
+ - **War Room:** Monitor the Shadow Army's background activities.
65
+ - **Sovereign Search:** Bridge the graph and your memory.
66
+
67
+ **Developer Resources:**
68
+ - [Frontend Integration Guide](docs/FRONTEND_INTEGRATION.md) — Connect your UI to the Shadow Army.
69
+ - [Architecture Overview](docs/ARCHITECTURE.md)
70
+ - [AAA Tier Roadmap](docs/ROADMAP_TO_AAA.md)
71
+
72
+ ---
73
+ **"Absolute Loyalty. Lethal Precision. Zero Overhead."**
74
+
75
+ (c) 2026 AKIK FARAJI | Fraziym Tech & AI
76
+ Contact: akikfaraji@gmail.com
@@ -0,0 +1,15 @@
1
+ export interface AgentToolConfig {
2
+ tool_names: string[];
3
+ deny_patterns?: string[];
4
+ }
5
+ export interface AgentDefinition {
6
+ id: string;
7
+ role: string;
8
+ system_prompt_extra?: string;
9
+ tool_config: AgentToolConfig;
10
+ model_override?: string;
11
+ }
12
+ export declare const CODER_AGENT_DEF: AgentDefinition;
13
+ export declare const RESEARCH_AGENT_DEF: AgentDefinition;
14
+ export declare const FILE_AGENT_DEF: AgentDefinition;
15
+ //# sourceMappingURL=definition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/agents/definition.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,eAAe,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,eAAe,EAAE,eAa7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,eAchC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,eAU5B,CAAC"}
@@ -0,0 +1,41 @@
1
+ export const CODER_AGENT_DEF = {
2
+ id: "coder",
3
+ role: "Code Specialist",
4
+ tool_config: {
5
+ tool_names: [
6
+ "file_read", "file_write", "file_edit", "file_delete", "file_list", "file_search", "file_append",
7
+ "shell_run", "shell_python",
8
+ "code_lint", "code_format", "code_tree", "code_analyze",
9
+ "git_status", "git_diff", "git_log", "git_add", "git_commit", "git_branch", "git_checkout", "git_push", "git_pull", "git_stash",
10
+ "axodex_query", "axodex_context", "axodex_smart_read", "axodex_impact", "axodex_detect_changes", "axodex_status", "axodex_analyze",
11
+ "done", "absolute_query", "get_time"
12
+ ]
13
+ }
14
+ };
15
+ export const RESEARCH_AGENT_DEF = {
16
+ id: "researcher",
17
+ role: "Research Specialist",
18
+ tool_config: {
19
+ tool_names: [
20
+ "file_read", "file_list", "file_search", "file_write", "file_append",
21
+ "web_get", "web_search",
22
+ "axodex_query", "axodex_context", "axodex_smart_read",
23
+ "memory_save", "memory_get", "memory_list",
24
+ "palace_search", "palace_context", "palace_wings", "palace_rooms", "palace_check_dup", "palace_graph_traverse", "palace_find_tunnels", "palace_graph_stats",
25
+ "kg_query", "kg_timeline", "kg_stats",
26
+ "done", "absolute_query", "get_time"
27
+ ]
28
+ }
29
+ };
30
+ export const FILE_AGENT_DEF = {
31
+ id: "file_manager",
32
+ role: "File Management Specialist",
33
+ tool_config: {
34
+ tool_names: [
35
+ "file_read", "file_write", "file_edit", "file_delete", "file_list", "file_search", "file_append",
36
+ "code_tree",
37
+ "done", "get_time"
38
+ ]
39
+ }
40
+ };
41
+ //# sourceMappingURL=definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/agents/definition.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,MAAM,eAAe,GAAoB;IAC9C,EAAE,EAAE,OAAO;IACX,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE;QACX,UAAU,EAAE;YACV,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa;YAChG,WAAW,EAAE,cAAc;YAC3B,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc;YACvD,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW;YAC/H,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,eAAe,EAAE,uBAAuB,EAAE,eAAe,EAAE,gBAAgB;YAClI,MAAM,EAAE,gBAAgB,EAAE,UAAU;SACrC;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAoB;IACjD,EAAE,EAAE,YAAY;IAChB,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE;QACX,UAAU,EAAE;YACV,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa;YACpE,SAAS,EAAE,YAAY;YACvB,cAAc,EAAE,gBAAgB,EAAE,mBAAmB;YACrD,aAAa,EAAE,YAAY,EAAE,aAAa;YAC1C,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,oBAAoB;YAC3J,UAAU,EAAE,aAAa,EAAE,UAAU;YACrC,MAAM,EAAE,gBAAgB,EAAE,UAAU;SACrC;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAoB;IAC7C,EAAE,EAAE,cAAc;IAClB,IAAI,EAAE,4BAA4B;IAClC,WAAW,EAAE;QACX,UAAU,EAAE;YACV,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa;YAChG,WAAW;YACX,MAAM,EAAE,UAAU;SACnB;KACF;CACF,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * __init__ for agents.
3
+ * Port of axoniz/agents/__init__.py
4
+ *
5
+ * The Python package initializer is a bare docstring (it exports nothing), but
6
+ * the port re-exports the specialized agents so `agents/index.ts` is a usable
7
+ * barrel — additive, mirrors how `integrations/index.ts` works.
8
+ */
9
+ export { CoderAgent, ResearchAgent, FileAgent, FallbackAgent, AgentBase } from "./specialized.js";
10
+ export type { SpecializedAgentLike, AgentConstructor, AgentMessage } from "./specialized.js";
11
+ export * from "./registry.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClG,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE7F,cAAc,eAAe,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * __init__ for agents.
3
+ * Port of axoniz/agents/__init__.py
4
+ *
5
+ * The Python package initializer is a bare docstring (it exports nothing), but
6
+ * the port re-exports the specialized agents so `agents/index.ts` is a usable
7
+ * barrel — additive, mirrors how `integrations/index.ts` works.
8
+ */
9
+ export { CoderAgent, ResearchAgent, FileAgent, FallbackAgent, AgentBase } from "./specialized.js";
10
+ export * from "./registry.js";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlG,cAAc,eAAe,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { AgentDefinition } from "./definition.js";
2
+ import { type AgentConstructor } from "./specialized.js";
3
+ export interface RegisteredAgent {
4
+ definition: AgentDefinition;
5
+ agentClass: AgentConstructor;
6
+ }
7
+ export declare class AgentRegistry {
8
+ private agents;
9
+ /** Registers a new agent definition and its corresponding class. */
10
+ register(definition: AgentDefinition, agentClass: AgentConstructor): void;
11
+ /** Retrieves a registered agent by its ID. */
12
+ get(id: string): RegisteredAgent | undefined;
13
+ /** Returns all registered agent definitions. */
14
+ list(): AgentDefinition[];
15
+ }
16
+ export declare const agentRegistry: AgentRegistry;
17
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAwC,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE/F,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,eAAe,CAAC;IAC5B,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAA2C;IAEzD,oEAAoE;IACpE,QAAQ,CAAC,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAExE;IAED,8CAA8C;IAC9C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAE3C;IAED,gDAAgD;IAChD,IAAI,IAAI,eAAe,EAAE,CAExB;CACF;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { CODER_AGENT_DEF, RESEARCH_AGENT_DEF, FILE_AGENT_DEF } from "./definition.js";
2
+ import { CoderAgent, ResearchAgent, FileAgent } from "./specialized.js";
3
+ export class AgentRegistry {
4
+ agents = new Map();
5
+ /** Registers a new agent definition and its corresponding class. */
6
+ register(definition, agentClass) {
7
+ this.agents.set(definition.id, { definition, agentClass });
8
+ }
9
+ /** Retrieves a registered agent by its ID. */
10
+ get(id) {
11
+ return this.agents.get(id);
12
+ }
13
+ /** Returns all registered agent definitions. */
14
+ list() {
15
+ return Array.from(this.agents.values()).map(a => a.definition);
16
+ }
17
+ }
18
+ export const agentRegistry = new AgentRegistry();
19
+ // Pre-register the standard built-in specialized agents
20
+ agentRegistry.register(CODER_AGENT_DEF, CoderAgent);
21
+ agentRegistry.register(RESEARCH_AGENT_DEF, ResearchAgent);
22
+ agentRegistry.register(FILE_AGENT_DEF, FileAgent);
23
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAyB,MAAM,kBAAkB,CAAC;AAO/F,MAAM,OAAO,aAAa;IAChB,MAAM,GAAiC,IAAI,GAAG,EAAE,CAAC;IAEzD,oEAAoE;IACpE,QAAQ,CAAC,UAA2B,EAAE,UAA4B;QAChE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,8CAA8C;IAC9C,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,gDAAgD;IAChD,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACjE,CAAC;CACF;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;AAEjD,wDAAwD;AACxD,aAAa,CAAC,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;AACpD,aAAa,CAAC,QAAQ,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;AAC1D,aAAa,CAAC,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC"}
@@ -0,0 +1,31 @@
1
+ export interface AgentMessage {
2
+ role: string;
3
+ content: string;
4
+ [key: string]: unknown;
5
+ }
6
+ export interface SpecializedAgentLike {
7
+ messages: AgentMessage[];
8
+ config: Record<string, unknown>;
9
+ [key: string]: unknown;
10
+ }
11
+ export type AgentConstructor = new (...args: any[]) => SpecializedAgentLike;
12
+ export declare class FallbackAgent implements SpecializedAgentLike {
13
+ messages: AgentMessage[];
14
+ config: Record<string, unknown>;
15
+ [key: string]: unknown;
16
+ constructor(...args: any[]);
17
+ }
18
+ export declare const AgentBase: AgentConstructor;
19
+ export declare class CoderAgent extends AgentBase {
20
+ static readonly EXTRA_PROMPT = "\nYou are specialized in coding tasks. When given a coding task:\n1. Understand the requirements\n2. Plan the implementation\n3. Write the code using file_write\n4. Test it using shell_python or shell_run\n5. Fix any errors\n6. Return the final result\n";
21
+ constructor(opts?: Record<string, unknown>);
22
+ }
23
+ export declare class ResearchAgent extends AgentBase {
24
+ static readonly EXTRA_PROMPT = "\nYou are specialized in research tasks. When given a research topic:\n1. Search the web for information\n2. Fetch relevant pages\n3. Synthesize the information\n4. Save key findings to memory\n5. Write a comprehensive report to a file\n";
25
+ constructor(opts?: Record<string, unknown>);
26
+ }
27
+ export declare class FileAgent extends AgentBase {
28
+ static readonly EXTRA_PROMPT = "\nYou are specialized in file and project management. You excel at:\n- Organizing file structures\n- Bulk file operations\n- Finding and editing content across many files\n- Creating project scaffolding\n";
29
+ constructor(opts?: Record<string, unknown>);
30
+ }
31
+ //# sourceMappingURL=specialized.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"specialized.d.ts","sourceRoot":"","sources":["../../src/agents/specialized.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,oBAAoB,CAAC;AAE5E,qBAAa,aAAc,YAAW,oBAAoB;IACxD,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAEvB,YAAY,GAAG,IAAI,EAAE,GAAG,EAAE,EAIzB;CACF;AAWD,eAAO,MAAM,SAAS,EAAE,gBAA6F,CAAC;AActH,qBAAa,UAAW,SAAQ,SAAS;IACvC,MAAM,CAAC,QAAQ,CAAC,YAAY,mQAQ5B;IACA,YAAY,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAG7C;CACF;AAED,qBAAa,aAAc,SAAQ,SAAS;IAC1C,MAAM,CAAC,QAAQ,CAAC,YAAY,mPAO5B;IACA,YAAY,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAG7C;CACF;AAED,qBAAa,SAAU,SAAQ,SAAS;IACtC,MAAM,CAAC,QAAQ,CAAC,YAAY,kNAM5B;IACA,YAAY,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAG7C;CACF"}
@@ -0,0 +1,75 @@
1
+ import { CODER_AGENT_DEF, RESEARCH_AGENT_DEF, FILE_AGENT_DEF } from "./definition.js";
2
+ export class FallbackAgent {
3
+ messages;
4
+ config;
5
+ constructor(...args) {
6
+ const opts = (args[0] ?? {});
7
+ this.config = opts;
8
+ this.messages = [];
9
+ }
10
+ }
11
+ async function tryImportAgent() {
12
+ try {
13
+ return (await import("../core/agent.js"));
14
+ }
15
+ catch {
16
+ return null;
17
+ }
18
+ }
19
+ const _agentModule = await tryImportAgent();
20
+ export const AgentBase = _agentModule?.["Agent"] ?? FallbackAgent;
21
+ function applyExtraPrompt(agent, extra) {
22
+ if (!agent.messages) {
23
+ agent.messages = [];
24
+ }
25
+ const first = agent.messages[0];
26
+ if (first) {
27
+ first.content += extra;
28
+ }
29
+ else {
30
+ agent.messages.push({ role: "system", content: extra });
31
+ }
32
+ }
33
+ export class CoderAgent extends AgentBase {
34
+ static EXTRA_PROMPT = `
35
+ You are specialized in coding tasks. When given a coding task:
36
+ 1. Understand the requirements
37
+ 2. Plan the implementation
38
+ 3. Write the code using file_write
39
+ 4. Test it using shell_python or shell_run
40
+ 5. Fix any errors
41
+ 6. Return the final result
42
+ `;
43
+ constructor(opts = {}) {
44
+ super({ ...opts, definition: CODER_AGENT_DEF });
45
+ applyExtraPrompt(this, CoderAgent.EXTRA_PROMPT);
46
+ }
47
+ }
48
+ export class ResearchAgent extends AgentBase {
49
+ static EXTRA_PROMPT = `
50
+ You are specialized in research tasks. When given a research topic:
51
+ 1. Search the web for information
52
+ 2. Fetch relevant pages
53
+ 3. Synthesize the information
54
+ 4. Save key findings to memory
55
+ 5. Write a comprehensive report to a file
56
+ `;
57
+ constructor(opts = {}) {
58
+ super({ ...opts, definition: RESEARCH_AGENT_DEF });
59
+ applyExtraPrompt(this, ResearchAgent.EXTRA_PROMPT);
60
+ }
61
+ }
62
+ export class FileAgent extends AgentBase {
63
+ static EXTRA_PROMPT = `
64
+ You are specialized in file and project management. You excel at:
65
+ - Organizing file structures
66
+ - Bulk file operations
67
+ - Finding and editing content across many files
68
+ - Creating project scaffolding
69
+ `;
70
+ constructor(opts = {}) {
71
+ super({ ...opts, definition: FILE_AGENT_DEF });
72
+ applyExtraPrompt(this, FileAgent.EXTRA_PROMPT);
73
+ }
74
+ }
75
+ //# sourceMappingURL=specialized.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"specialized.js","sourceRoot":"","sources":["../../src/agents/specialized.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAgBtF,MAAM,OAAO,aAAa;IACxB,QAAQ,CAAiB;IACzB,MAAM,CAA0B;IAGhC,YAAY,GAAG,IAAW;QACxB,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAA4B,CAAC;QACxD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;CACF;AAED,KAAK,UAAU,cAAc;IAC3B,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAA4B,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,YAAY,GAAG,MAAM,cAAc,EAAE,CAAC;AAC5C,MAAM,CAAC,MAAM,SAAS,GAAsB,YAAY,EAAE,CAAC,OAAO,CAAkC,IAAI,aAAa,CAAC;AAEtH,SAAS,gBAAgB,CAAC,KAA2B,EAAE,KAAa;IAClE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpB,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;IACtB,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,MAAM,OAAO,UAAW,SAAQ,SAAS;IACvC,MAAM,CAAU,YAAY,GAAG;;;;;;;;CAQhC,CAAC;IACA,YAAY,IAAI,GAA4B,EAAE;QAC5C,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,CAAC;QAChD,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,SAAS;IAC1C,MAAM,CAAU,YAAY,GAAG;;;;;;;CAOhC,CAAC;IACA,YAAY,IAAI,GAA4B,EAAE;QAC5C,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC,CAAC;QACnD,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACrD,CAAC;CACF;AAED,MAAM,OAAO,SAAU,SAAQ,SAAS;IACtC,MAAM,CAAU,YAAY,GAAG;;;;;;CAMhC,CAAC;IACA,YAAY,IAAI,GAA4B,EAAE;QAC5C,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC;QAC/C,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IACjD,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * src/awareness/index.ts
3
+ * ========================
4
+ * BERU awareness subsystem — proactive environment monitoring.
5
+ *
6
+ * Port of axoniz/awareness/__init__.py. The Python `__all__` is preserved
7
+ * exactly; camelCase aliases and the screen/OCR helpers are also exported
8
+ * because the Node port has to expose the degraded capabilities explicitly.
9
+ */
10
+ export { AwarenessService, ContextSnapshot, SuggestionEngine, get_awareness_service, get_system_metrics, get_active_window_title, get_clipboard, } from "./service.js";
11
+ export { getAwarenessService, getSystemMetricsAsync, getActiveWindowTitle, getClipboard, take_screenshot_ocr, takeScreenshotOcr, captureScreen, ocrImage, cropAndPreprocess, findTextOnScreen, find_text_on_screen, findTesseract, OCR_UNAVAILABLE_ERROR, SCREENSHOT_UNAVAILABLE_ERROR, type SystemMetrics, type ScreenRegion, type TextFound, type AwarenessStatus, } from "./service.js";
12
+ /** Python `__init__.py` `__all__` equivalent. */
13
+ export declare const __all__: readonly ["AwarenessService", "ContextSnapshot", "SuggestionEngine", "get_awareness_service", "get_system_metrics", "get_active_window_title", "get_clipboard"];
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/awareness/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,QAAQ,EACR,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,qBAAqB,EACrB,4BAA4B,EAC5B,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AAEtB,iDAAiD;AACjD,eAAO,MAAM,OAAO,YAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,EACzB,eAAe,CACP,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * src/awareness/index.ts
3
+ * ========================
4
+ * BERU awareness subsystem — proactive environment monitoring.
5
+ *
6
+ * Port of axoniz/awareness/__init__.py. The Python `__all__` is preserved
7
+ * exactly; camelCase aliases and the screen/OCR helpers are also exported
8
+ * because the Node port has to expose the degraded capabilities explicitly.
9
+ */
10
+ export { AwarenessService, ContextSnapshot, SuggestionEngine, get_awareness_service, get_system_metrics, get_active_window_title, get_clipboard, } from "./service.js";
11
+ export { getAwarenessService, getSystemMetricsAsync, getActiveWindowTitle, getClipboard, take_screenshot_ocr, takeScreenshotOcr, captureScreen, ocrImage, cropAndPreprocess, findTextOnScreen, find_text_on_screen, findTesseract, OCR_UNAVAILABLE_ERROR, SCREENSHOT_UNAVAILABLE_ERROR, } from "./service.js";
12
+ /** Python `__init__.py` `__all__` equivalent. */
13
+ export const __all__ = [
14
+ "AwarenessService",
15
+ "ContextSnapshot",
16
+ "SuggestionEngine",
17
+ "get_awareness_service",
18
+ "get_system_metrics",
19
+ "get_active_window_title",
20
+ "get_clipboard",
21
+ ];
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/awareness/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,QAAQ,EACR,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,qBAAqB,EACrB,4BAA4B,GAK7B,MAAM,cAAc,CAAC;AAEtB,iDAAiD;AACjD,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;IAClB,uBAAuB;IACvB,oBAAoB;IACpB,yBAAyB;IACzB,eAAe;CACP,CAAC"}
@@ -0,0 +1,180 @@
1
+ /**
2
+ * src/awareness/service.ts
3
+ * ============================
4
+ * BERU Awareness Service — proactive environment monitoring.
5
+ *
6
+ * Inspired by Jarvis src/awareness/ — Python reimplementation, now ported.
7
+ *
8
+ * Monitors:
9
+ * - Screen content via screenshot + OCR (tesseract via node:child_process)
10
+ * - Clipboard changes
11
+ * - Active window title
12
+ * - System load (CPU/RAM/disk)
13
+ * - Proactively suggests relevant actions based on context
14
+ *
15
+ * BERU wakes up and says: "I see you're looking at X — want me to Y?"
16
+ *
17
+ * ── Port notes ───────────────────────────────────────────────────────────────
18
+ * psutil → `systeminformation` (installed) with a zero-dep fallback
19
+ * pyautogui/PIL → `screenshot-desktop` (installed) + `sharp` (installed)
20
+ * pytesseract → shell out to the `tesseract` binary (this is exactly what
21
+ * pytesseract does internally)
22
+ * pyperclip/win32 → PowerShell `Get-Clipboard` / `pbpaste` / `xclip`
23
+ *
24
+ * Every degraded capability returns a clear `[ERROR] …`/`[X unavailable …]`
25
+ * string and never throws.
26
+ */
27
+ export interface SystemMetrics {
28
+ cpu_percent: number;
29
+ ram_percent: number;
30
+ disk_percent: number;
31
+ platform: string;
32
+ /** Extra vendor fields (kept open so snapshots can carry richer metrics). */
33
+ [key: string]: unknown;
34
+ }
35
+ /**
36
+ * Returns CPU, RAM and disk usage.
37
+ *
38
+ * TODO(port): Python used `psutil` behind an ImportError guard with a zero-dep
39
+ * fallback. The Node equivalent is `systeminformation` (installed). This keeps
40
+ * the synchronous Python signature by serving a short-lived cache and
41
+ * refreshing in the background, so the very first call returns zeros exactly
42
+ * like the Python fallback path did.
43
+ */
44
+ export declare function get_system_metrics(): SystemMetrics;
45
+ /** Await a fresh metrics sample (used by the awareness loop). */
46
+ export declare function getSystemMetricsAsync(): Promise<SystemMetrics>;
47
+ /**
48
+ * Best-effort active window title.
49
+ *
50
+ * TODO(port): Python used `ctypes.windll.user32` on Windows, `osascript` on
51
+ * macOS and `xdotool` on Linux. There is no synchronous Win32 binding here, so
52
+ * Windows shells out to PowerShell. The "return '' on any failure" contract is
53
+ * preserved exactly.
54
+ */
55
+ export declare function get_active_window_title(): string;
56
+ export declare function getActiveWindowTitle(): string;
57
+ /**
58
+ * Get clipboard content (capped at 500 chars, as in Python).
59
+ *
60
+ * TODO(port): Python used `win32clipboard`, then `pbpaste` / `xclip`. Windows
61
+ * now shells out to PowerShell `Get-Clipboard`; any failure yields "".
62
+ */
63
+ export declare function get_clipboard(): string;
64
+ export declare function getClipboard(): string;
65
+ export declare const OCR_UNAVAILABLE_ERROR: string;
66
+ export declare const SCREENSHOT_UNAVAILABLE_ERROR = "[ERROR] screenshot unavailable \u2014 the `screenshot-desktop` package is not installed.";
67
+ /** Locate the tesseract binary (PATH first, then the usual install spots). */
68
+ export declare function findTesseract(): string | null;
69
+ /** Capture the screen as PNG bytes, or null when capture is unavailable. */
70
+ export declare function captureScreen(display?: number): Promise<Buffer | null>;
71
+ /**
72
+ * OCR an image buffer through the `tesseract` binary.
73
+ *
74
+ * TODO(port): `pytesseract` (NOT available for Node) is itself a thin wrapper
75
+ * around this binary, so the port calls it directly via node:child_process.
76
+ * No `tesseract.js` dependency is needed or available.
77
+ */
78
+ export declare function ocrImage(image: Buffer): Promise<string>;
79
+ /** Region of the screen, in physical pixels. */
80
+ export interface ScreenRegion {
81
+ left: number;
82
+ top: number;
83
+ width: number;
84
+ height: number;
85
+ }
86
+ /** Crop + normalise a PNG buffer with `sharp` (falls back to passthrough). */
87
+ export declare function cropAndPreprocess(image: Buffer, region: ScreenRegion): Promise<Buffer>;
88
+ /**
89
+ * Take a screenshot and OCR it. Returns the extracted text, or a bracketed
90
+ * status string matching the Python contract:
91
+ * "[OCR unavailable — …]" / "[Screenshot unavailable — …]" / "[Screenshot error: …]"
92
+ */
93
+ export declare function take_screenshot_ocr(region?: ScreenRegion): Promise<string>;
94
+ export declare function takeScreenshotOcr(region?: ScreenRegion): Promise<string>;
95
+ export interface TextFound {
96
+ found: boolean;
97
+ region?: ScreenRegion;
98
+ line?: string;
99
+ error?: string;
100
+ }
101
+ /**
102
+ * Find a piece of text on screen by OCR-ing horizontal tiles and matching the
103
+ * line containing it. This is the "screen watching / text finding" capability
104
+ * that the Python stack reached through `pyautogui` + `pytesseract`.
105
+ */
106
+ export declare function findTextOnScreen(needle: string, tileHeight?: number, display?: number): Promise<TextFound>;
107
+ export declare function find_text_on_screen(needle: string, tileHeight?: number, display?: number): Promise<TextFound>;
108
+ /** Point-in-time awareness snapshot. */
109
+ export declare class ContextSnapshot {
110
+ ts: number;
111
+ window_title: string;
112
+ clipboard: string;
113
+ metrics: SystemMetrics;
114
+ ocr_text: string;
115
+ suggestions: string[];
116
+ constructor();
117
+ /** camelCase aliases for the Python attribute names. */
118
+ get windowTitle(): string;
119
+ get ocrText(): string;
120
+ to_dict(): Record<string, unknown>;
121
+ toDict(): Record<string, unknown>;
122
+ /** Format as an agent context block. */
123
+ context_block(): string;
124
+ contextBlock(): string;
125
+ }
126
+ /**
127
+ * Rule-based proactive suggestion generator.
128
+ * Looks at context and fires suggestions to the user.
129
+ */
130
+ export declare class SuggestionEngine {
131
+ private _rules;
132
+ constructor();
133
+ evaluate(snapshot: ContextSnapshot): string[];
134
+ }
135
+ export interface AwarenessStatus {
136
+ running: boolean;
137
+ last_snapshot: Record<string, unknown> | null;
138
+ }
139
+ /**
140
+ * Background service that monitors context and delivers proactive suggestions.
141
+ *
142
+ * TODO(port): Python used `threading.Thread(daemon=True)` + `time.sleep`.
143
+ * This is a cancellable async loop; `stop()` aborts the sleep immediately.
144
+ */
145
+ export declare class AwarenessService {
146
+ interval_s: number;
147
+ enable_ocr: boolean;
148
+ private _suggester;
149
+ private _running;
150
+ private _abort;
151
+ private _thread;
152
+ private _last;
153
+ private _on_suggestion;
154
+ private _last_window;
155
+ private _last_clip;
156
+ constructor(interval_s?: number, enable_ocr?: boolean);
157
+ /** Called when BERU has a proactive suggestion. */
158
+ set_suggestion_callback(cb: (s: string) => void): void;
159
+ setSuggestionCallback(cb: (s: string) => void): void;
160
+ /** Take a single context snapshot. */
161
+ snapshot(): Promise<ContextSnapshot>;
162
+ /** Snapshot without the async metrics refresh (sync Python signature parity). */
163
+ snapshot_sync(): ContextSnapshot;
164
+ /** For injecting into the agent system prompt. */
165
+ get_context_block(): string;
166
+ getContextBlock(): string;
167
+ start(): void;
168
+ stop(): void;
169
+ is_running(): boolean;
170
+ isRunning(): boolean;
171
+ private _loop;
172
+ private _check_changes;
173
+ status(): AwarenessStatus;
174
+ }
175
+ export declare function get_awareness_service(interval_s?: number): AwarenessService;
176
+ /** camelCase alias of `get_awareness_service`. */
177
+ export declare const getAwarenessService: typeof get_awareness_service;
178
+ /** Test/DI hook — replace the singleton. */
179
+ export declare function setAwarenessService(service: AwarenessService | null): void;
180
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/awareness/service.ts"],"names":[],"mappings":"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"}